package com.csair.platform.cit.facade.model.citJscg;

import java.util.Date;
import java.util.List;
import java.util.Objects;

import javax.validation.Valid;
import javax.validation.constraints.NotEmpty;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.annotation.Validated;

import com.csair.invoice.common.base.util.date.DatetimeUtil;

import lombok.Data;

/**
 * @author zhengxincheng
 */
@Data
public class CitJscgRequest {

    /**
     * 纳税人识别号
     */
    @NotEmpty(message = "纳税人识别号不能是空值22")
    private String nsrsbh;

    /**
     * 税款所属时间起
     */
    @NotEmpty(message = "税款所属时间起不能是空值")
    private String skssqq;

    /**
     * 税款所属时间止
     */
    @NotEmpty(message = "税款所属时间止不能是空值")
    private String skssqz;

    private String tbr;

    /**
     * 法定代表人签章：
     */
    private String fddbrqz;
    /**
     * 填报日期
     */
    private String tbrq;
    /**
     * 纳税人名称（盖章）
     */
    private String nsrmc;
    /**
     * 申报所属期：yyyy 年度
     */
    private String sqssqnd;
    /**
     * 数据
     */
    @Valid
    private List<CitJscgVo> item;

    public CitJscgRequest() {
    }

    public String getNsrsbh() {
        if(StringUtils.isNotEmpty(nsrsbh)&& CollectionUtils.isNotEmpty(item)){
            item.forEach(i->i.setNsrsbh(nsrsbh));
        }
        return nsrsbh;
    }

    public String getSkssqq() {
        if(StringUtils.isNotEmpty(skssqq)&& CollectionUtils.isNotEmpty(item)){
            item.forEach(i->i.setSkssqq(skssqq));
        }
        return skssqq;
    }

    public String getSkssqz() {
        if(StringUtils.isNotEmpty(skssqz)&& CollectionUtils.isNotEmpty(item)){
            item.forEach(i->i.setSkssqz(skssqz));
        }
        return skssqz;
    }

    public String getTbr() {
        if(StringUtils.isNotEmpty(tbr)&& CollectionUtils.isNotEmpty(item)){
            item.forEach(i -> i.setTbr(tbr));
        }
        if(StringUtils.isEmpty(tbr)){
            tbr = "";
        }
        return tbr;
    }

    public String getFddbrqz() {
        if(StringUtils.isNotEmpty(fddbrqz)&& CollectionUtils.isNotEmpty(item)){
            item.forEach(i -> i.setFddbrqz(fddbrqz));
        }
        if(StringUtils.isEmpty(fddbrqz)){
            fddbrqz = "";
        }
        return fddbrqz;

    }

    public String getTbrq() {
        if(!Objects.isNull(tbrq) && CollectionUtils.isNotEmpty(item)) {
            item.forEach(i -> i.setTbrq(tbrq));
        }
        return tbrq;
    }

    public String getNsrmc() {
        if(StringUtils.isNotEmpty(nsrmc) && CollectionUtils.isNotEmpty(item)) {
            item.forEach(i -> i.setNsrmc(nsrmc));
        }
        return nsrmc;
    }

    public String getSqssqnd() {
        if (StringUtils.isNotEmpty(sqssqnd) && CollectionUtils.isNotEmpty(item)) {
            item.forEach(i -> i.setSqssqnd(sqssqnd));
        }
        return StringUtils.isEmpty(sqssqnd) ? DatetimeUtil.dateToStr(new Date(), "YYYY") : sqssqnd;
    }
}
